Tool Support for the CircusRefinement Calculus

نویسندگان

  • Alessandro Cavalcante Gurgel
  • Cristiano Gurgel de Castro
  • Marcel Vinicius Medeiros Oliveira
چکیده

Circus [1] specifications combine both data and behavioural aspects of concurrent systems using a combination of CSP [3], Z [9], and Dijkstra’s command language. Its associated refinement theory and calculus [5] distinguishes itself from other such combinations. Using the Circus refinement calculus, we can correctly construct programs in a stepwise fashion [4]. Each step is justified by the application of a refinement law, possibly with the discharge of proof obligations (hereafter called POs). Hence, using Circus we are able to calculate concrete (usually distributed) specifications from abstract (usually centralised) specifications. The manual application of the refinement calculus, however, is an error-prone and hard task. We present CRefine, a tool that supports the use of the Circus refinement calculus. Its interface is similar to Refine’s [8], a tool that supports Morgan’s refinement calculus [4]; it is based on an early prototype that was presented in [10]. We have, however, considerably changed and extended CRefine’s prototype. First, we updated the Circus parser used which fixes a couple of bugs of its earlier version. We have also added facilities to manage developments: undoing and redoing refinement steps, saving and opening developments is now available. Furthermore, some GUI facilities like pretty-printing, filtering applicable laws according to the selected program, classification of laws, adding comments to the development, and printing the development were also included. Finally, the discharge of some proof obligations is now automatically done by CRefine. CRefine provides support to apply the refinement laws and to manage the overall development. Its interface is composed by a menu and three main frames: refinement, proof obligations, and code. The refinement frame shows all the steps of the refinement process. This includes law applications and retrieving the current status of an action or process (collection). The proof obligations frame lists the POs that were generated by the law applications, indicates their current state (i.e. checked valid or invalid, or unchecked), and associates each one of them to the law application that originated it in the refinement frame. Currently, some proof obligations are automatically checked valid or invalid. In our experience, these amount to over 60% of the proof obligations. The remaining proof obligations need to be verified by the user. Finally, the code frame exhibits the overall Circus specification that has been calculate so far. CRefine provides two display formats for formulas: LTEX and Unicode (prettyprinting). We intend to use this tool in teaching the Circus refinement calculus to under-graduates. Unfortunately, most of them are not familiar with LTEX; in order to make CRefine accessible to them, we have also provided a pretty-printing.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Tool for Re ning Logic ProgramsRobert Colvin

Note: Most SVRC technical reports are available via anonymous ftp, from svrc.it.uq.edu.au in the directory /pub/techreports. Individual abstracts and compressed postscript les are available from Abstract The reenement calculus provides a method for transforming speciications to executable code, maintaining the correctness of the code with respect to its speciication. In the original reene-ment ...

متن کامل

A Tool for Logic Program Refinement

The re nement calculus provides a method for transforming speci cations to executable code, maintaining the correctness of the code with respect to its speci cation. In the original re nement calculus, the target language is an imperative programming language, but more recently a re nement calculus for deriving logic programs has been proposed. Due to the amount of detail involved, the manual r...

متن کامل

NON-POLYNOMIAL SPLINE FOR THE NUMERICAL SOLUTION OF PROBLEMS IN CALCULUS OF VARIATIONS

A Class of new methods based on a septic non-polynomial spline function for the numerical solution of problems in calculus of variations is presented. The local truncation errors and the methods of order 2th, 4th, 6th, 8th, 10th, and 12th, are obtained. The inverse of some band matrixes are obtained which are required in proving the convergence analysis of the presented method. Convergence anal...

متن کامل

An analytic study on the Euler-Lagrange equation arising in calculus of variations

The Euler-Lagrange equation plays an important role in the minimization problems of the calculus of variations. This paper employs the differential transformation method (DTM) for finding the solution of the Euler-Lagrange equation which arise from problems of calculus of variations. DTM provides an analytical solution in the form of an infinite power series with easily computable components. S...

متن کامل

ACVisualizer: A visualization tool for APi-calculus

Process calculi are mathematical tools used for modeling and analyzing the structure and behavior of reactive systems. One such calculus, called APi-calculus (an extension to Pi-calculus), provides support for modeling migration, intelligence, natural grouping and security in agent-based systems [18]. In this article, a visualization tool for the APi-calculus is proposed. Although an invaluable...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008